<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
lang="en" xml:lang="en">
<head>
<title>Nitrogen 2.x Documentation</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="2010-06-14 18:34:59 EDT"/>
<meta name="author" content="Rusty Klophaus (@rklophaus)"/>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<style type="text/css">
 <!--/*--><![CDATA[/*><!--*/
  html { font-family: Times, serif; font-size: 12pt; }
  .title  { text-align: center; }
  .todo   { color: red; }
  .done   { color: green; }
  .tag    { background-color: #add8e6; font-weight:normal }
  .target { }
  .timestamp { color: #bebebe; }
  .timestamp-kwd { color: #5f9ea0; }
  p.verse { margin-left: 3% }
  pre {
	border: 1pt solid #AEBDCC;
	background-color: #F3F5F7;
	padding: 5pt;
	font-family: courier, monospace;
        font-size: 90%;
        overflow:auto;
  }
  table { border-collapse: collapse; }
  td, th { vertical-align: top; }
  dt { font-weight: bold; }
  div.figure { padding: 0.5em; }
  div.figure p { text-align: center; }
  .linenr { font-size:smaller }
  .code-highlighted {background-color:#ffff00;}
  .org-info-js_info-navigation { border-style:none; }
  #org-info-js_console-label { font-size:10px; font-weight:bold;
                               white-space:nowrap; }
  .org-info-js_search-highlight {background-color:#ffff00; color:#000000;
                                 font-weight:bold; }
  /*]]>*/-->
</style>
<LINK href="stylesheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--/*--><![CDATA[/*><!--*/
 function CodeHighlightOn(elem, id)
 {
   var target = document.getElementById(id);
   if(null != target) {
     elem.cacheClassElem = elem.className;
     elem.cacheClassTarget = target.className;
     target.className = "code-highlighted";
     elem.className   = "code-highlighted";
   }
 }
 function CodeHighlightOff(elem, id)
 {
   var target = document.getElementById(id);
   if(elem.cacheClassElem)
     elem.className = elem.cacheClassElem;
   if(elem.cacheClassTarget)
     target.className = elem.cacheClassTarget;
 }
/*]]>*///-->
</script>
</head>
<body>
<div id="content">

<h1 class="title">Nitrogen 2.x Documentation</h1>

<p><a href="./index.html">Getting Started</a> | API | <a href="./elements.html">Elements</a> | <a href="./actions.html">Actions</a> | <a href="./validators.html">Validators</a> | <a href="./handlers.html">Handlers</a> | <a href="./about.html">About</a>
</p>


<div class=headline>Nitrogen Paths</div>


<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1 Overview </a></li>
<li><a href="#sec-2">2 How Are Paths Matched? </a></li>
<li><a href="#sec-3">3 Nitrogen Specific Selectors </a></li>
<li><a href="#sec-4">4 jQuery Selectors </a></li>
</ul>
</div>
</div>

<div id="outline-container-1" class="outline-2">
<h2 id="sec-1"><span class="section-number-2">1</span> Overview </h2>
<div class="outline-text-2" id="text-1">


<p>
Nitrogen 2.x allows you to reference element paths using jQuery
selectors. These selectors can be used in three contexts:
</p>
<ul>
<li>
As the target (first parameter) of <code>wf:wire/2</code>,
<code>wf:update/2</code>, <code>wf:insert_top/2</code>,
<code>wf:insert_bottom/2</code>, etc.

</li>
<li>
As the trigger (first parameter) or target (second parameter) of
<code>wf:wire/3</code>.

</li>
<li>
As the <code>trigger</code> or <code>target</code> of an <code>#event{}</code>
action.

</li>
</ul>

<p>Path matching in Nitrogen is complicated because it must provide a
simple, straight-forward interface while still accounting for potential
name-collisions due to the nested nature of Nitrogen elements.
</p>
<p>
For example, you should be able to create two elements with the same
ID, but in different areas of the element hierarchy, and be able to
reference those elements in predictable ways.
</p>
</div>

</div>

<div id="outline-container-2" class="outline-2">
<h2 id="sec-2"><span class="section-number-2">2</span> How Are Paths Matched? </h2>
<div class="outline-text-2" id="text-2">


<p>
The <code>objs(Path, Anchor)</code> function is used to match selectors on the
client. This is defined in <i>nitrogen.js</i>, and returns a jQuery
object containing all of the elements that match the selector
provided under <code>Path</code>, potentially in close proximity to the
selector provided under <code>Anchor</code>. If <code>Anchor</code> is not provided, then
the anchor set by <code>Nitrogen.$anchor(Anchor, Target)</code> is used. 
</p>
<p>
<code>Nitrogen.$anchor/2</code> is automatically called by Nitrogen before each
action is rendered. The <code>Anchor</code> value is set to the uniquely
generated temp ID for the element to which the action applies, it
will look something like <code>.wfid_temp23422</code>.
</p>
<p>
Unless you are doing some wacky stuff, your application should not
need to worry about calling <code>objs()</code> or <code>Nitrogen.$anchor()</code>
directly, but it helps to know what is happening behind the scenes
in case you need to debug.
</p>
<p>
If you are trying to wire an action or update a command, and the
statement seems to affect the wrong elements, it may help to drop
down into a Javascript console and run <code>objs(YourPath)</code> to see what
is actually getting matched.
</p>

</div>

<div id="outline-container-2.1" class="outline-3">
<h3 id="sec-2.1"><span class="section-number-3">2.1</span> Steps To Match a Path </h3>
<div class="outline-text-3" id="text-2.1">


<p>
Here are the steps that the <code>objs()</code> function takes when matching a
path.
</p>
<ol>
<li>
If the selector has multiple parts separated by commas, then the
selector is split, and each part is combined.

</li>
<li>
If the selector is "page", then a reference to the DOM document
is returned.

</li>
<li>
The string "\#\#" is replaced with ".wfid_". This allows you to
specify Nitrogen elementIDs in a string selector. For example
"\#\#myelementid &gt; .someclass" will be rewritten to
".wfid<sub>myelementid</sub> &gt; .someclass". This is done because Nitrogen
uses classes to tag your elements with their ID, so an element
with ID of 'myelementid' will be tagged with a class called
'.wfid<sub>myelementid'</sub>.

</li>
<li>
If the string "me" is found surrounded by non-word characters,
it is replaced with the anchor that was set. This allows
you to write paths such as "me &gt; .image" which will apply to all
elements with class ".image" under the current element.

</li>
<li>
If the path is a one word string and it is the name of an HTML
element such as "table", "div", "h1", etc., then try matching as
a Nitrogen element ID first, and if that doesn't work, then try
matching as an HTML element.

</li>
<li>
If a string is found containing only words separated by periods
(for example, "element1.element2"), then it is assumed to be a
nested series of elements, and is converted to ".wfid<sub>element1</sub>
.wfid<sub>element2</sub>". This will match all Nitrogen elements named
'element2' underneath any Nitrogen elements named 'element1'.

</li>
<li>
If the path begins with "body", then match using a call to
<code>jQuery(path)</code>. This will match any elements in the context of the
entire document.

</li>
<li>
Otherwise, Nitrogen will try to match elements as closely as
possible starting at the current anchor. First, try to match the
path under the current anchor using
<code>jQuery(anchor).find(path)</code>. If results were found, then stop
and return.  Otherwise, call <code>jQuery(anchor).parents()</code> to get a
list of parents, and then for each parent, call
<code>jQuery(parent).find(path)</code>. If results were found, then stop
and return.

</li>
<li>
Finally, if no elements were found, then Nitrogen resorts to
matching <code>jQuery(path)</code>.

</li>
</ol>
</div>
</div>

</div>

<div id="outline-container-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> Nitrogen Specific Selectors </h2>
<div class="outline-text-2" id="text-3">



</div>

<div id="outline-container-3.1" class="outline-3">
<h3 id="sec-3.1"><span class="section-number-3">3.1</span> Selector: me </h3>
<div class="outline-text-3" id="text-3.1">

<p>A keyword to specify the context of the current anchor. In other
words, if you wire an event to an element, then 'me' will point to that element.
</p>
</div>

</div>

<div id="outline-container-3.2" class="outline-3">
<h3 id="sec-3.2"><span class="section-number-3">3.2</span> Selecter: ##element </h3>
<div class="outline-text-3" id="text-3.2">

<p>A shortcut for referring to a Nitrogen element when you specify a
string path. Because of the way Nitrogen uses class names to tag
elements, this is the same as specifying ".wfid<sub>element</sub>".
</p>
</div>
</div>

</div>

<div id="outline-container-4" class="outline-2">
<h2 id="sec-4"><span class="section-number-2">4</span> jQuery Selectors </h2>
<div class="outline-text-2" id="text-4">


<p>
Selectors and descriptions below are pulled directly from the [[http://api.jquery.com/category/selectors/][jQuery Selectors Documentation].
</p>

</div>

<div id="outline-container-4.1" class="outline-3">
<h3 id="sec-4.1"><span class="section-number-3">4.1</span> Selector: * </h3>
<div class="outline-text-3" id="text-4.1">

<p>Selects all elements.
</p>
</div>

</div>

<div id="outline-container-4.2" class="outline-3">
<h3 id="sec-4.2"><span class="section-number-3">4.2</span> Selector: :animated </h3>
<div class="outline-text-3" id="text-4.2">

<p>Select all elements that are in the progress of an animation at the
time the selector is run.
</p>
</div>

</div>

<div id="outline-container-4.3" class="outline-3">
<h3 id="sec-4.3"><span class="section-number-3">4.3</span> Selector: Attribute Contains Prefix [name|=value] </h3>
<div class="outline-text-3" id="text-4.3">

<p>Selects elements that have the specified attribute with a value
either equal to a given string or starting with that string
followed by a hyphen (-).
</p>
</div>

</div>

<div id="outline-container-4.4" class="outline-3">
<h3 id="sec-4.4"><span class="section-number-3">4.4</span> Selector: Attribute Contains [name*=value] </h3>
<div class="outline-text-3" id="text-4.4">

<p>Selects elements that have the specified attribute with a value
containing the a given substring.
</p>
</div>

</div>

<div id="outline-container-4.5" class="outline-3">
<h3 id="sec-4.5"><span class="section-number-3">4.5</span> Selector: Attribute Contains Word [name~=value] </h3>
<div class="outline-text-3" id="text-4.5">

<p>Selects elements that have the specified attribute with a value
containing a given word, delimited by spaces.
</p>
</div>

</div>

<div id="outline-container-4.6" class="outline-3">
<h3 id="sec-4.6"><span class="section-number-3">4.6</span> Selector: Attribute Ends With [name$=value] </h3>
<div class="outline-text-3" id="text-4.6">

<p>Selects elements that have the specified attribute with a value
ending exactly with a given string.
</p>
</div>

</div>

<div id="outline-container-4.7" class="outline-3">
<h3 id="sec-4.7"><span class="section-number-3">4.7</span> Selector: Attribute Equals Selector [name=value] </h3>
<div class="outline-text-3" id="text-4.7">

<p>Selects elements that have the specified attribute with a value
exactly equal to a certain value.
</p>
</div>

</div>

<div id="outline-container-4.8" class="outline-3">
<h3 id="sec-4.8"><span class="section-number-3">4.8</span> Selector: Attribute Not Equal Selector [name!=value] </h3>
<div class="outline-text-3" id="text-4.8">

<p>Select elements that either don't have the specified attribute, or
do have the specified attribute but not with a certain value.
</p>
</div>

</div>

<div id="outline-container-4.9" class="outline-3">
<h3 id="sec-4.9"><span class="section-number-3">4.9</span> Selector: Attribute Starts With Selector [name^=value] </h3>
<div class="outline-text-3" id="text-4.9">

<p>Selects elements that have the specified attribute with a value
beginning exactly with a given string.
</p>
</div>

</div>

<div id="outline-container-4.10" class="outline-3">
<h3 id="sec-4.10"><span class="section-number-3">4.10</span> Selector: :button Selector </h3>
<div class="outline-text-3" id="text-4.10">

<p>Selects all button elements and elements of type button.
</p>
</div>

</div>

<div id="outline-container-4.11" class="outline-3">
<h3 id="sec-4.11"><span class="section-number-3">4.11</span> Selector: :checkbox Selector </h3>
<div class="outline-text-3" id="text-4.11">

<p>Selects all elements of type checkbox.
</p>
</div>

</div>

<div id="outline-container-4.12" class="outline-3">
<h3 id="sec-4.12"><span class="section-number-3">4.12</span> Selector: :checked Selector </h3>
<div class="outline-text-3" id="text-4.12">

<p>Matches all elements that are checked.
</p>
</div>

</div>

<div id="outline-container-4.13" class="outline-3">
<h3 id="sec-4.13"><span class="section-number-3">4.13</span> Selector: Child Selector ("parent &gt; child") </h3>
<div class="outline-text-3" id="text-4.13">

<p>Selects all direct child elements specified by "child" of elements
specified by "parent".
</p>
</div>

</div>

<div id="outline-container-4.14" class="outline-3">
<h3 id="sec-4.14"><span class="section-number-3">4.14</span> Selector: Class Selector (".class") </h3>
<div class="outline-text-3" id="text-4.14">

<p>Selects all elements with the given class.
</p>
</div>

</div>

<div id="outline-container-4.15" class="outline-3">
<h3 id="sec-4.15"><span class="section-number-3">4.15</span> Selector: :contains() Selector </h3>
<div class="outline-text-3" id="text-4.15">

<p>Select all elements that contain the specified text.
</p>
</div>

</div>

<div id="outline-container-4.16" class="outline-3">
<h3 id="sec-4.16"><span class="section-number-3">4.16</span> Selector: Descendant Selector ("ancestor descendant") </h3>
<div class="outline-text-3" id="text-4.16">

<p>Selects all elements that are descendants of a given ancestor.
</p>
</div>

</div>

<div id="outline-container-4.17" class="outline-3">
<h3 id="sec-4.17"><span class="section-number-3">4.17</span> Selector: :disabled Selector </h3>
<div class="outline-text-3" id="text-4.17">

<p>Selects all elements that are disabled.
</p>
</div>

</div>

<div id="outline-container-4.18" class="outline-3">
<h3 id="sec-4.18"><span class="section-number-3">4.18</span> Selector: Element Selector ("element") </h3>
<div class="outline-text-3" id="text-4.18">

<p>Selects all elements with the given tag name.
</p>
</div>

</div>

<div id="outline-container-4.19" class="outline-3">
<h3 id="sec-4.19"><span class="section-number-3">4.19</span> Selector: :empty Selector </h3>
<div class="outline-text-3" id="text-4.19">

<p>Select all elements that have no children (including text nodes).
</p>
</div>

</div>

<div id="outline-container-4.20" class="outline-3">
<h3 id="sec-4.20"><span class="section-number-3">4.20</span> Selector: :enabled Selector </h3>
<div class="outline-text-3" id="text-4.20">

<p>Selects all elements that are enabled.
</p>
</div>

</div>

<div id="outline-container-4.21" class="outline-3">
<h3 id="sec-4.21"><span class="section-number-3">4.21</span> Selector: :eq() Selector </h3>
<div class="outline-text-3" id="text-4.21">

<p>Select the element at index n within the matched set.
</p>
</div>

</div>

<div id="outline-container-4.22" class="outline-3">
<h3 id="sec-4.22"><span class="section-number-3">4.22</span> Selector: :even Selector </h3>
<div class="outline-text-3" id="text-4.22">

<p>Selects even elements, zero-indexed. See also odd.
</p>
</div>

</div>

<div id="outline-container-4.23" class="outline-3">
<h3 id="sec-4.23"><span class="section-number-3">4.23</span> Selector: :file Selector </h3>
<div class="outline-text-3" id="text-4.23">

<p>Selects all elements of type file.
</p>
</div>

</div>

<div id="outline-container-4.24" class="outline-3">
<h3 id="sec-4.24"><span class="section-number-3">4.24</span> Selector: :first-child Selector </h3>
<div class="outline-text-3" id="text-4.24">

<p>Selects all elements that are the first child of their parent.
</p>
</div>

</div>

<div id="outline-container-4.25" class="outline-3">
<h3 id="sec-4.25"><span class="section-number-3">4.25</span> Selector: :first Selector </h3>
<div class="outline-text-3" id="text-4.25">

<p>Selects the first matched element.
</p>
</div>

</div>

<div id="outline-container-4.26" class="outline-3">
<h3 id="sec-4.26"><span class="section-number-3">4.26</span> Selector: :gt() Selector </h3>
<div class="outline-text-3" id="text-4.26">

<p>Select all elements at an index greater than index within the
matched set.
</p>
</div>

</div>

<div id="outline-container-4.27" class="outline-3">
<h3 id="sec-4.27"><span class="section-number-3">4.27</span> Selector: Has Attribute Selector [name] </h3>
<div class="outline-text-3" id="text-4.27">

<p>Selects elements that have the specified attribute, with any value.
</p>
</div>

</div>

<div id="outline-container-4.28" class="outline-3">
<h3 id="sec-4.28"><span class="section-number-3">4.28</span> Selector: :has() Selector </h3>
<div class="outline-text-3" id="text-4.28">

<p>Selects elements which contain at least one element that matches
the specified selector.
</p>
</div>

</div>

<div id="outline-container-4.29" class="outline-3">
<h3 id="sec-4.29"><span class="section-number-3">4.29</span> Selector: :header Selector </h3>
<div class="outline-text-3" id="text-4.29">

<p>Selects all elements that are headers, like h1, h2, h3 and so on.
</p>
</div>

</div>

<div id="outline-container-4.30" class="outline-3">
<h3 id="sec-4.30"><span class="section-number-3">4.30</span> Selector: :hidden Selector </h3>
<div class="outline-text-3" id="text-4.30">

<p>Selects all elements that are hidden.
</p>
</div>

</div>

<div id="outline-container-4.31" class="outline-3">
<h3 id="sec-4.31"><span class="section-number-3">4.31</span> Selector: ID Selector ("#id") </h3>
<div class="outline-text-3" id="text-4.31">

<p>Selects a single element with the given id attribute.
</p>
</div>

</div>

<div id="outline-container-4.32" class="outline-3">
<h3 id="sec-4.32"><span class="section-number-3">4.32</span> Selector: :image Selector </h3>
<div class="outline-text-3" id="text-4.32">

<p>Selects all elements of type image.
</p>
</div>

</div>

<div id="outline-container-4.33" class="outline-3">
<h3 id="sec-4.33"><span class="section-number-3">4.33</span> Selector: :input Selector </h3>
<div class="outline-text-3" id="text-4.33">

<p>Selects all input, textarea, select and button elements.
</p>
</div>

</div>

<div id="outline-container-4.34" class="outline-3">
<h3 id="sec-4.34"><span class="section-number-3">4.34</span> Selector: :last-child Selector </h3>
<div class="outline-text-3" id="text-4.34">

<p>Selects all elements that are the last child of their parent.
</p>
</div>

</div>

<div id="outline-container-4.35" class="outline-3">
<h3 id="sec-4.35"><span class="section-number-3">4.35</span> Selector: :last Selector </h3>
<div class="outline-text-3" id="text-4.35">

<p>Selects the last matched element.
</p>
</div>

</div>

<div id="outline-container-4.36" class="outline-3">
<h3 id="sec-4.36"><span class="section-number-3">4.36</span> Selector: :lt() Selector </h3>
<div class="outline-text-3" id="text-4.36">

<p>Select all elements at an index less than index within the matched
set.
</p>
</div>

</div>

<div id="outline-container-4.37" class="outline-3">
<h3 id="sec-4.37"><span class="section-number-3">4.37</span> Selector: Multiple Attribute Selector [name=value][name2=value2] </h3>
<div class="outline-text-3" id="text-4.37">

<p>Matches elements that match all of the specified attribute filters.
</p>
</div>

</div>

<div id="outline-container-4.38" class="outline-3">
<h3 id="sec-4.38"><span class="section-number-3">4.38</span> Selector: Multiple Selector ("selector1, selector2, selectorN") </h3>
<div class="outline-text-3" id="text-4.38">

<p>Selects the combined results of all the specified selectors.
</p>
</div>

</div>

<div id="outline-container-4.39" class="outline-3">
<h3 id="sec-4.39"><span class="section-number-3">4.39</span> Selector: Next Adjacent Selector ("prev + next") </h3>
<div class="outline-text-3" id="text-4.39">

<p>Selects all next elements matching "next" that are immediately
preceded by a sibling "prev".
</p>
</div>

</div>

<div id="outline-container-4.40" class="outline-3">
<h3 id="sec-4.40"><span class="section-number-3">4.40</span> Selector: Next Siblings Selector ("prev ~ siblings") </h3>
<div class="outline-text-3" id="text-4.40">

<p>Selects all sibling elements that follow after the "prev" element,
have the same parent, and match the filtering "siblings" selector.
</p>
</div>

</div>

<div id="outline-container-4.41" class="outline-3">
<h3 id="sec-4.41"><span class="section-number-3">4.41</span> Selector: :not() Selector </h3>
<div class="outline-text-3" id="text-4.41">

<p>Selects all elements that do not match the given selector.
</p>
</div>

</div>

<div id="outline-container-4.42" class="outline-3">
<h3 id="sec-4.42"><span class="section-number-3">4.42</span> Selector: :nth-child Selector </h3>
<div class="outline-text-3" id="text-4.42">

<p>Selects all elements that are the nth-child of their parent.
</p>
</div>

</div>

<div id="outline-container-4.43" class="outline-3">
<h3 id="sec-4.43"><span class="section-number-3">4.43</span> Selector: :odd Selector </h3>
<div class="outline-text-3" id="text-4.43">

<p>Selects odd elements, zero-indexed. See also even.
</p>
</div>

</div>

<div id="outline-container-4.44" class="outline-3">
<h3 id="sec-4.44"><span class="section-number-3">4.44</span> Selector: :only-child Selector </h3>
<div class="outline-text-3" id="text-4.44">

<p>Selects all elements that are the only child of their parent.
</p>
</div>

</div>

<div id="outline-container-4.45" class="outline-3">
<h3 id="sec-4.45"><span class="section-number-3">4.45</span> Selector: :parent Selector </h3>
<div class="outline-text-3" id="text-4.45">

<p>Select all elements that are the parent of another element,
including text nodes.
</p>
</div>

</div>

<div id="outline-container-4.46" class="outline-3">
<h3 id="sec-4.46"><span class="section-number-3">4.46</span> Selector: :password Selector </h3>
<div class="outline-text-3" id="text-4.46">

<p>Selects all elements of type password.
</p>
</div>

</div>

<div id="outline-container-4.47" class="outline-3">
<h3 id="sec-4.47"><span class="section-number-3">4.47</span> Selector: :radio Selector </h3>
<div class="outline-text-3" id="text-4.47">

<p>Selects all elements of type radio.
</p>
</div>

</div>

<div id="outline-container-4.48" class="outline-3">
<h3 id="sec-4.48"><span class="section-number-3">4.48</span> Selector: :reset Selector </h3>
<div class="outline-text-3" id="text-4.48">

<p>Selects all elements of type reset.
</p>
</div>

</div>

<div id="outline-container-4.49" class="outline-3">
<h3 id="sec-4.49"><span class="section-number-3">4.49</span> Selector: :selected Selector </h3>
<div class="outline-text-3" id="text-4.49">

<p>Selects all elements that are selected.
</p>
</div>

</div>

<div id="outline-container-4.50" class="outline-3">
<h3 id="sec-4.50"><span class="section-number-3">4.50</span> Selector: :submit Selector </h3>
<div class="outline-text-3" id="text-4.50">

<p>Selects all elements of type submit.
</p>
</div>

</div>

<div id="outline-container-4.51" class="outline-3">
<h3 id="sec-4.51"><span class="section-number-3">4.51</span> Selector: :text Selector </h3>
<div class="outline-text-3" id="text-4.51">

<p>Selects all elements of type text.
</p>
</div>

</div>

<div id="outline-container-4.52" class="outline-3">
<h3 id="sec-4.52"><span class="section-number-3">4.52</span> Selector: :visible Selector </h3>
<div class="outline-text-3" id="text-4.52">

<p>Selects all elements that are visible.
</p></div>
</div>
</div>
<div id="postamble">
<p class="author"> Author: Rusty Klophaus (@rklophaus)
<a href="mailto:">&lt;&gt;</a>
</p>
<p class="date"> Date: 2010-06-14 18:34:59 EDT</p>
<p class="creator">HTML generated by org-mode 6.33f in emacs 22</p>
</div>
</div>
</body>
</html>
